package com.doit.day05

object _02_面相对象之class类 {
  def main(args: Array[String]): Unit = {
    val teacher: Teacher = new Teacher(2,"大涛","aaa",2.0,19)
    val teacher1: Teacher = new Teacher()
    println(teacher.age)//19
    println(teacher.id)//2
    println(teacher.name)//有歧义  小涛
    println(teacher.height)//2.0


  }
}


/*
class 类的构造方法和类交织在一起

辅助构造器==》 多个构造方法的需求
如果类后面的括号 参数加了val var 那么他就是一个成员变量   如果什么都不加，就是一个构造方法中的局部变量，外界是没办法访问的
 */
class Teacher(var id: Int,val name: String,abc:String){//构造方法
  /**
   * scala中的成员变量必须得赋初始值
   */
  val subject: String ="quanzhan"
  var height: Double = 1.9
  var age: Int = 18

  //辅助构造器的第一行必须调用主构造器或者其他的辅助构造器
  def this()={
    this(1,"小涛","aaa")
    println(abc)
  }


  def this(id: Int,name: String,subject: String,height: Double,age: Int)={
    this()
    this.height = height
    this.age = age
    this.id = id

  }

  def  add(a:Int,b:Int)=a+b

  //get set 方法  ==》 默认全部给你写好了，你就不需要写了

  //toString
  override def toString: String = "aaa"
}